// $ANTLR 3.4 C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g 2012-11-07 16:33:12
package PL.practica8;

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class XMLLexer extends Lexer {
    public static final int EOF=-1;
    public static final int ABRIRANGULO=4;
    public static final int ANGULOSLASH=5;
    public static final int ATRIBUTO=6;
    public static final int BLANCO=7;
    public static final int CADENA=8;
    public static final int CERRARANGULO=9;
    public static final int CHAR=10;
    public static final int COMENTARIO=11;
    public static final int DIGITO=12;
    public static final int ID=13;
    public static final int IGUAL=14;
    public static final int NUEVA_LINEA=15;
    public static final int NUMERO=16;
    public static final int OPERADOR=17;
    public static final int PARAM=18;
    public static final int PARENTESIS=19;
    public static final int SEPARADOR=20;
    public static final int SIMBOLOS=21;
    public static final int VALOR=22;

      boolean identificador = false;
      boolean dentroEtiqueta = false;
      
      
      ArrayList <RecognitionException> errores = new ArrayList<RecognitionException>();

      public boolean listaVacia (){
        if (errores.isEmpty()){
          return true;
        }else
          return false;
    }

    public ArrayList getListaErrores(){return errores;}


    @Override
    public void reportError (RecognitionException e){
      System.err.println (getErrorMessage(e, getTokenNames()));
      errores.add(e);
    }
      


    // delegates
    // delegators
    public Lexer[] getDelegates() {
        return new Lexer[] {};
    }

    public XMLLexer() {} 
    public XMLLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public XMLLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);
    }
    public String getGrammarFileName() { return "C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g"; }

    // $ANTLR start "NUEVA_LINEA"
    public final void mNUEVA_LINEA() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:36:23: ( '\\r\\n' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:36:25: '\\r\\n'
            {
            match("\r\n"); 



            }


        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "NUEVA_LINEA"

    // $ANTLR start "DIGITO"
    public final void mDIGITO() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:37:18: ( '0' .. '9' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:
            {
            if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }


        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "DIGITO"

    // $ANTLR start "CHAR"
    public final void mCHAR() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:38:16: ( 'A' .. 'Z' | 'a' .. 'z' | '_' | '/' | '&' | ';' | '.' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:
            {
            if ( input.LA(1)=='&'||(input.LA(1) >= '.' && input.LA(1) <= '/')||input.LA(1)==';'||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }


        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "CHAR"

    // $ANTLR start "PARAM"
    public final void mPARAM() throws RecognitionException {
        try {
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:39:17: ({...}? ( CHAR )+ )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:39:19: {...}? ( CHAR )+
            {
            if ( !(( dentroEtiqueta && identificador )) ) {
                throw new FailedPredicateException(input, "PARAM", " dentroEtiqueta && identificador ");
            }

            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:39:56: ( CHAR )+
            int cnt1=0;
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0=='&'||(LA1_0 >= '.' && LA1_0 <= '/')||LA1_0==';'||(LA1_0 >= 'A' && LA1_0 <= 'Z')||LA1_0=='_'||(LA1_0 >= 'a' && LA1_0 <= 'z')) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:
            	    {
            	    if ( input.LA(1)=='&'||(input.LA(1) >= '.' && input.LA(1) <= '/')||input.LA(1)==';'||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt1 >= 1 ) break loop1;
                        EarlyExitException eee =
                            new EarlyExitException(1, input);
                        throw eee;
                }
                cnt1++;
            } while (true);


            }


        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "PARAM"

    // $ANTLR start "BLANCO"
    public final void mBLANCO() throws RecognitionException {
        try {
            int _type = BLANCO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:40:9: ( ( ' ' | '\\t' | NUEVA_LINEA ) )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:40:11: ( ' ' | '\\t' | NUEVA_LINEA )
            {
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:40:11: ( ' ' | '\\t' | NUEVA_LINEA )
            int alt2=3;
            switch ( input.LA(1) ) {
            case ' ':
                {
                alt2=1;
                }
                break;
            case '\t':
                {
                alt2=2;
                }
                break;
            case '\r':
                {
                alt2=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;

            }

            switch (alt2) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:40:12: ' '
                    {
                    match(' '); 

                    }
                    break;
                case 2 :
                    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:40:16: '\\t'
                    {
                    match('\t'); 

                    }
                    break;
                case 3 :
                    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:40:21: NUEVA_LINEA
                    {
                    mNUEVA_LINEA(); 


                    }
                    break;

            }


            skip();

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "BLANCO"

    // $ANTLR start "COMENTARIO"
    public final void mCOMENTARIO() throws RecognitionException {
        try {
            int _type = COMENTARIO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:41:13: ( '<!--' ( options {greedy=false; } : . )* '-->' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:41:15: '<!--' ( options {greedy=false; } : . )* '-->'
            {
            match("<!--"); 



            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:41:22: ( options {greedy=false; } : . )*
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0=='-') ) {
                    int LA3_1 = input.LA(2);

                    if ( (LA3_1=='-') ) {
                        int LA3_3 = input.LA(3);

                        if ( (LA3_3=='>') ) {
                            alt3=2;
                        }
                        else if ( ((LA3_3 >= '\u0000' && LA3_3 <= '=')||(LA3_3 >= '?' && LA3_3 <= '\uFFFF')) ) {
                            alt3=1;
                        }


                    }
                    else if ( ((LA3_1 >= '\u0000' && LA3_1 <= ',')||(LA3_1 >= '.' && LA3_1 <= '\uFFFF')) ) {
                        alt3=1;
                    }


                }
                else if ( ((LA3_0 >= '\u0000' && LA3_0 <= ',')||(LA3_0 >= '.' && LA3_0 <= '\uFFFF')) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:41:47: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop3;
                }
            } while (true);


            match("-->"); 



            skip();

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "COMENTARIO"

    // $ANTLR start "IGUAL"
    public final void mIGUAL() throws RecognitionException {
        try {
            int _type = IGUAL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:42:9: ( '=' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:42:11: '='
            {
            match('='); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "IGUAL"

    // $ANTLR start "CADENA"
    public final void mCADENA() throws RecognitionException {
        try {
            int _type = CADENA;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:43:10: ( '\"' ( options {greedy=false; } : . )* '\"' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:43:13: '\"' ( options {greedy=false; } : . )* '\"'
            {
            match('\"'); 

            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:43:17: ( options {greedy=false; } : . )*
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( (LA4_0=='\"') ) {
                    alt4=2;
                }
                else if ( ((LA4_0 >= '\u0000' && LA4_0 <= '!')||(LA4_0 >= '#' && LA4_0 <= '\uFFFF')) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:43:44: .
            	    {
            	    matchAny(); 

            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);


            match('\"'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "CADENA"

    // $ANTLR start "ABRIRANGULO"
    public final void mABRIRANGULO() throws RecognitionException {
        try {
            int _type = ABRIRANGULO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:44:15: ( '<' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:44:17: '<'
            {
            match('<'); 

            dentroEtiqueta=true;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "ABRIRANGULO"

    // $ANTLR start "CERRARANGULO"
    public final void mCERRARANGULO() throws RecognitionException {
        try {
            int _type = CERRARANGULO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:45:16: ( '>' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:45:17: '>'
            {
            match('>'); 

            dentroEtiqueta=false; identificador = false;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "CERRARANGULO"

    // $ANTLR start "ANGULOSLASH"
    public final void mANGULOSLASH() throws RecognitionException {
        try {
            int _type = ANGULOSLASH;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:46:15: ( '</' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:46:17: '</'
            {
            match("</"); 



            dentroEtiqueta=true;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "ANGULOSLASH"

    // $ANTLR start "NUMERO"
    public final void mNUMERO() throws RecognitionException {
        try {
            int _type = NUMERO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:47:9: ( ( DIGITO )+ ( '.' ( DIGITO )+ )? )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:47:11: ( DIGITO )+ ( '.' ( DIGITO )+ )?
            {
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:47:11: ( DIGITO )+
            int cnt5=0;
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( ((LA5_0 >= '0' && LA5_0 <= '9')) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:
            	    {
            	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt5 >= 1 ) break loop5;
                        EarlyExitException eee =
                            new EarlyExitException(5, input);
                        throw eee;
                }
                cnt5++;
            } while (true);


            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:47:20: ( '.' ( DIGITO )+ )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0=='.') ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:47:21: '.' ( DIGITO )+
                    {
                    match('.'); 

                    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:47:24: ( DIGITO )+
                    int cnt6=0;
                    loop6:
                    do {
                        int alt6=2;
                        int LA6_0 = input.LA(1);

                        if ( ((LA6_0 >= '0' && LA6_0 <= '9')) ) {
                            alt6=1;
                        }


                        switch (alt6) {
                    	case 1 :
                    	    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:
                    	    {
                    	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
                    	        input.consume();
                    	    }
                    	    else {
                    	        MismatchedSetException mse = new MismatchedSetException(null,input);
                    	        recover(mse);
                    	        throw mse;
                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt6 >= 1 ) break loop6;
                                EarlyExitException eee =
                                    new EarlyExitException(6, input);
                                throw eee;
                        }
                        cnt6++;
                    } while (true);


                    }
                    break;

            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "NUMERO"

    // $ANTLR start "OPERADOR"
    public final void mOPERADOR() throws RecognitionException {
        try {
            int _type = OPERADOR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:48:11: ( '+' | '-' | '/' | '*' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:
            {
            if ( (input.LA(1) >= '*' && input.LA(1) <= '+')||input.LA(1)=='-'||input.LA(1)=='/' ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "OPERADOR"

    // $ANTLR start "PARENTESIS"
    public final void mPARENTESIS() throws RecognitionException {
        try {
            int _type = PARENTESIS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:49:13: ( '(' | ')' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:
            {
            if ( (input.LA(1) >= '(' && input.LA(1) <= ')') ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "PARENTESIS"

    // $ANTLR start "SEPARADOR"
    public final void mSEPARADOR() throws RecognitionException {
        try {
            int _type = SEPARADOR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:50:12: ( ';' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:50:14: ';'
            {
            match(';'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "SEPARADOR"

    // $ANTLR start "SIMBOLOS"
    public final void mSIMBOLOS() throws RecognitionException {
        try {
            int _type = SIMBOLOS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:51:12: ( '&' | '.' )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:
            {
            if ( input.LA(1)=='&'||input.LA(1)=='.' ) {
                input.consume();
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;
            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "SIMBOLOS"

    // $ANTLR start "ID"
    public final void mID() throws RecognitionException {
        try {
            int _type = ID;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:52:6: ({...}? ( CHAR )+ )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:52:8: {...}? ( CHAR )+
            {
            if ( !((dentroEtiqueta && !identificador )) ) {
                throw new FailedPredicateException(input, "ID", "dentroEtiqueta && !identificador ");
            }

            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:52:45: ( CHAR )+
            int cnt8=0;
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( (LA8_0=='&'||(LA8_0 >= '.' && LA8_0 <= '/')||LA8_0==';'||(LA8_0 >= 'A' && LA8_0 <= 'Z')||LA8_0=='_'||(LA8_0 >= 'a' && LA8_0 <= 'z')) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:
            	    {
            	    if ( input.LA(1)=='&'||(input.LA(1) >= '.' && input.LA(1) <= '/')||input.LA(1)==';'||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt8 >= 1 ) break loop8;
                        EarlyExitException eee =
                            new EarlyExitException(8, input);
                        throw eee;
                }
                cnt8++;
            } while (true);


             identificador = true; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "ID"

    // $ANTLR start "VALOR"
    public final void mVALOR() throws RecognitionException {
        try {
            int _type = VALOR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:53:9: ({...}? ( CHAR )+ )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:53:11: {...}? ( CHAR )+
            {
            if ( !((!dentroEtiqueta)) ) {
                throw new FailedPredicateException(input, "VALOR", "!dentroEtiqueta");
            }

            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:53:31: ( CHAR )+
            int cnt9=0;
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0=='&'||(LA9_0 >= '.' && LA9_0 <= '/')||LA9_0==';'||(LA9_0 >= 'A' && LA9_0 <= 'Z')||LA9_0=='_'||(LA9_0 >= 'a' && LA9_0 <= 'z')) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:
            	    {
            	    if ( input.LA(1)=='&'||(input.LA(1) >= '.' && input.LA(1) <= '/')||input.LA(1)==';'||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt9 >= 1 ) break loop9;
                        EarlyExitException eee =
                            new EarlyExitException(9, input);
                        throw eee;
                }
                cnt9++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "VALOR"

    // $ANTLR start "ATRIBUTO"
    public final void mATRIBUTO() throws RecognitionException {
        try {
            int _type = ATRIBUTO;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:54:11: ( PARAM '=' CADENA )
            // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:54:14: PARAM '=' CADENA
            {
            mPARAM(); 


            match('='); 

            mCADENA(); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "ATRIBUTO"

    public void mTokens() throws RecognitionException {
        // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:8: ( BLANCO | COMENTARIO | IGUAL | CADENA | ABRIRANGULO | CERRARANGULO | ANGULOSLASH | NUMERO | OPERADOR | PARENTESIS | SEPARADOR | SIMBOLOS | ID | VALOR | ATRIBUTO )
        int alt10=15;
        alt10 = dfa10.predict(input);
        switch (alt10) {
            case 1 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:10: BLANCO
                {
                mBLANCO(); 


                }
                break;
            case 2 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:17: COMENTARIO
                {
                mCOMENTARIO(); 


                }
                break;
            case 3 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:28: IGUAL
                {
                mIGUAL(); 


                }
                break;
            case 4 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:34: CADENA
                {
                mCADENA(); 


                }
                break;
            case 5 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:41: ABRIRANGULO
                {
                mABRIRANGULO(); 


                }
                break;
            case 6 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:53: CERRARANGULO
                {
                mCERRARANGULO(); 


                }
                break;
            case 7 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:66: ANGULOSLASH
                {
                mANGULOSLASH(); 


                }
                break;
            case 8 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:78: NUMERO
                {
                mNUMERO(); 


                }
                break;
            case 9 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:85: OPERADOR
                {
                mOPERADOR(); 


                }
                break;
            case 10 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:94: PARENTESIS
                {
                mPARENTESIS(); 


                }
                break;
            case 11 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:105: SEPARADOR
                {
                mSEPARADOR(); 


                }
                break;
            case 12 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:115: SIMBOLOS
                {
                mSIMBOLOS(); 


                }
                break;
            case 13 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:124: ID
                {
                mID(); 


                }
                break;
            case 14 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:127: VALOR
                {
                mVALOR(); 


                }
                break;
            case 15 :
                // C:\\Users\\Jose\\workspace\\practica8\\src\\main\\java\\PL\\practica8\\XMLLexer.g:1:133: ATRIBUTO
                {
                mATRIBUTO(); 


                }
                break;

        }

    }


    protected DFA10 dfa10 = new DFA10(this);
    static final String DFA10_eotS =
        "\2\uffff\1\17\4\uffff\1\20\1\uffff\1\22\1\23\1\uffff\1\24\14\uffff";
    static final String DFA10_eofS =
        "\31\uffff";
    static final String DFA10_minS =
        "\1\11\1\uffff\1\41\4\uffff\1\46\1\uffff\2\46\1\uffff\1\46\3\uffff"+
        "\1\0\1\uffff\3\0\4\uffff";
    static final String DFA10_maxS =
        "\1\172\1\uffff\1\57\4\uffff\1\172\1\uffff\2\172\1\uffff\1\172\3"+
        "\uffff\1\0\1\uffff\3\0\4\uffff";
    static final String DFA10_acceptS =
        "\1\uffff\1\1\1\uffff\1\3\1\4\1\6\1\10\1\uffff\1\12\2\uffff\1\11"+
        "\1\uffff\1\2\1\7\1\5\1\uffff\1\17\3\uffff\1\15\1\16\1\13\1\14";
    static final String DFA10_specialS =
        "\20\uffff\1\0\1\uffff\1\2\1\1\1\3\4\uffff}>";
    static final String[] DFA10_transitionS = {
            "\1\1\3\uffff\1\1\22\uffff\1\1\1\uffff\1\4\3\uffff\1\12\1\uffff"+
            "\2\10\2\13\1\uffff\1\13\1\12\1\7\12\6\1\uffff\1\11\1\2\1\3\1"+
            "\5\2\uffff\32\14\4\uffff\1\14\1\uffff\32\14",
            "",
            "\1\15\15\uffff\1\16",
            "",
            "",
            "",
            "",
            "\1\14\7\uffff\2\14\13\uffff\1\14\1\uffff\1\21\3\uffff\32\14"+
            "\4\uffff\1\14\1\uffff\32\14",
            "",
            "\1\14\7\uffff\2\14\13\uffff\1\14\1\uffff\1\21\3\uffff\32\14"+
            "\4\uffff\1\14\1\uffff\32\14",
            "\1\14\7\uffff\2\14\13\uffff\1\14\1\uffff\1\21\3\uffff\32\14"+
            "\4\uffff\1\14\1\uffff\32\14",
            "",
            "\1\14\7\uffff\2\14\13\uffff\1\14\1\uffff\1\21\3\uffff\32\14"+
            "\4\uffff\1\14\1\uffff\32\14",
            "",
            "",
            "",
            "\1\uffff",
            "",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS);
    static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS);
    static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS);
    static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS);
    static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS);
    static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS);
    static final short[][] DFA10_transition;

    static {
        int numStates = DFA10_transitionS.length;
        DFA10_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA10_transition[i] = DFA.unpackEncodedString(DFA10_transitionS[i]);
        }
    }

    class DFA10 extends DFA {

        public DFA10(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 10;
            this.eot = DFA10_eot;
            this.eof = DFA10_eof;
            this.min = DFA10_min;
            this.max = DFA10_max;
            this.accept = DFA10_accept;
            this.special = DFA10_special;
            this.transition = DFA10_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( BLANCO | COMENTARIO | IGUAL | CADENA | ABRIRANGULO | CERRARANGULO | ANGULOSLASH | NUMERO | OPERADOR | PARENTESIS | SEPARADOR | SIMBOLOS | ID | VALOR | ATRIBUTO );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            IntStream input = _input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA10_16 = input.LA(1);

                         
                        int index10_16 = input.index();
                        input.rewind();

                        s = -1;
                        if ( (!((((!dentroEtiqueta)||(dentroEtiqueta && !identificador ))))) ) {s = 11;}

                        else if ( ((dentroEtiqueta && !identificador )) ) {s = 21;}

                        else if ( ((!dentroEtiqueta)) ) {s = 22;}

                         
                        input.seek(index10_16);

                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA10_19 = input.LA(1);

                         
                        int index10_19 = input.index();
                        input.rewind();

                        s = -1;
                        if ( (!((((!dentroEtiqueta)||(dentroEtiqueta && !identificador ))))) ) {s = 24;}

                        else if ( ((dentroEtiqueta && !identificador )) ) {s = 21;}

                        else if ( ((!dentroEtiqueta)) ) {s = 22;}

                         
                        input.seek(index10_19);

                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA10_18 = input.LA(1);

                         
                        int index10_18 = input.index();
                        input.rewind();

                        s = -1;
                        if ( (!((((!dentroEtiqueta)||(dentroEtiqueta && !identificador ))))) ) {s = 23;}

                        else if ( ((dentroEtiqueta && !identificador )) ) {s = 21;}

                        else if ( ((!dentroEtiqueta)) ) {s = 22;}

                         
                        input.seek(index10_18);

                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA10_20 = input.LA(1);

                         
                        int index10_20 = input.index();
                        input.rewind();

                        s = -1;
                        if ( ((dentroEtiqueta && !identificador )) ) {s = 21;}

                        else if ( ((!dentroEtiqueta)) ) {s = 22;}

                         
                        input.seek(index10_20);

                        if ( s>=0 ) return s;
                        break;
            }
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 10, _s, input);
            error(nvae);
            throw nvae;
        }

    }
 

}